<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    /* 
    纯函数与副作用函数
    什么函数是纯函数?
      1. 多次调用传入相同的参数, 结果是一样
      2. 函数执行不要影响外部环境: 外部变量/外部存储/远程存储
    */
    function sum(a, b) { // 纯函数
      return a + b
    }
    console.log(sum(1, 2))
    console.log(sum(1, 2))

    // 不纯的函数(带副作用函数/副作用函数)
    let c = 3
    function fn(a, b) {
      // return a + b + c  使用了外部数据
      // c = 5  // 更新了外部数据
      // sessionStorage.setItem('xxx', 4)  // 更新外部存储
      // setTimeout(() => {  // 有异步操作
        
      // }, 1000);
      return a + b
    }
    console.log(fn(1, 2))
    c = 4
    console.log(fn(1, 2))
  </script>
</body>
</html>